package org.gap.jseed.contract.annotation;

import static java.lang.annotation.ElementType.METHOD;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.gap.jseed.contract.ContractViolation;

/**
 * Applied to a method, it implies that that parameters for the method must
 * not take null values.  During runtime, if a null value is passed in, a
 * ContractViolation exception is thrown.  
 * 
 * @author gpelcha
 * @see {@link ContractViolation}, {@link Contract}
 * @similar {@link NotEmpty}, {@link Ensure}, {@link Require}
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface NotNull {

}
